tmem: Reduce verbosity on failed memory allocations.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 8 Jan 2010 11:25:22 +0000 (11:25 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 8 Jan 2010 11:25:22 +0000 (11:25 +0000)
Reduce tmem complaints per Jan's concerns in this thread
http://lists.xensource.com/archives/html/xen-devel/2010-01/msg00155.html
Now complains only if tmem HAS memory to relinquish and
memory request has order>0.

Signed-off by: Dan Magenheimer <dan.magenheimer@oracle.com>

xen/common/tmem.c
xen/include/xen/tmem_xen.h

index ab1b3cd8f637a418186114e5761257517e275b59..eed3192efb9e492c13c9212e43a4e5687f3302de 100644 (file)
@@ -2177,7 +2177,7 @@ static NOINLINE int do_tmem_control(struct tmem_op *op)
         ret = tmemc_set_var(op->u.ctrl.cli_id,subop,op->u.ctrl.arg1);
         break;
     case TMEMC_QUERY_FREEABLE_MB:
-        ret = tmh_freeable_mb();
+        ret = tmh_freeable_pages() >> (20 - PAGE_SHIFT);
         break;
     case TMEMC_SAVE_BEGIN:
     case TMEMC_RESTORE_BEGIN:
@@ -2474,7 +2474,7 @@ EXPORT void *tmem_relinquish_pages(unsigned int order, unsigned int memflags)
     unsigned long evicts_per_relinq = 0;
     int max_evictions = 10;
 
-    if (!tmh_enabled())
+    if (!tmh_enabled() || !tmh_freeable_pages())
         return NULL;
 #ifdef __i386__
     return NULL;
index 6095db82480f80f455726777bc06b347e16c7215..394251dfef7393d8d459913e5b8726571f2cd845 100644 (file)
@@ -246,10 +246,9 @@ static inline unsigned int tmem_subpage_maxsize(void)
     return tmh_mempool_maxalloc;
 }
 
-static inline unsigned long tmh_freeable_mb(void)
+static inline unsigned long tmh_freeable_pages(void)
 {
-    return (tmh_avail_pages() + _atomic_read(freeable_page_count)) >>
-            (20 - PAGE_SHIFT);
+    return tmh_avail_pages() + _atomic_read(freeable_page_count);
 }
 
 static inline unsigned long tmh_free_mb(void)